#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
// 修改 《判断一个数是不是质数》那道题，从命令行中传递数据进行判断

int isPrime(int n)
{
    if (n <= 1)
        return -1; // 1 及以下的数不是质数
    if (n == 2)
        return 1; // 2 是质数
    if (n % 2 == 0)
        return -1; // 排除偶数（除了2）

    // 检查 3 到 √n 的奇数
    for (int i = 3; i <= sqrt(n); i += 2)
    {
        if (n % i == 0)
        {
            return -1;
        }
    }
    return 1;
}

int main(int argc, char const *argv[])
{
    int num = atoi(argv[1]);
    if (isPrime(num) == 1)
    {
        printf("%d是质数", num);
    }
    else
    {
        printf("%d不是质数", num);
    }
    return 0;
}
